package Day_0201.JUC;

/**
 * @author zxc
 * @date 2023/02/01 21:57
 **/
public class Principle_of_Threadpool {
    public static void main(String[] args) {
        /**
         * 线程池原理以及线程池的核心参数
         * ===》
         * 1.线程池的核心参数 ：
         * （1）最大线程数maximumPoolSize;
         * （2）核心线程数corePoolSize;
         * （3）活跃时间keepAliveTime;
         * （4）阻塞队列workQueue;
         * （5）拒绝策略RejectedExecutionHandler;
         *
         * 2.线程池的原理
         * 当提交一个新任务到线程池时，具体的执行流程如下：
         * （1）当我们提交任务，线程池会根据corePoolSize大小创建若干任务数量线程执行任务;
         * （2）当任务的数量超过corePoolSize数量，后续的任务将会进入阻塞队列阻塞排队;
         * （3）当阻塞队列也满了之后，那么将会继续创建(maximumPoolSize-corePoolSize)个数量的线程来执行任务;
         *  如果任务处理完成，maximumPoolSize-corePoolSize额外创建的线程等待keepAliveTime之后被自动销毁;
         * （4）如果达到maximumPoolSize，阻塞队列还是满的状态，那么将根据不同的拒绝策略对应处理;
         *
         */
    }
}
